{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "6167e66d-1d84-458a-9711-cecf35359b36",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.linear_model import LogisticRegression \n",
    "from sklearn.metrics import classification_report,roc_curve, auc,confusion_matrix\n",
    "from sklearn.preprocessing import StandardScaler"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "f16347a5-5a57-4cdd-a790-ad82b954f3ed",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>净利润(元)</th>\n",
       "      <th>非经常性损益(元)</th>\n",
       "      <th>基本每股收益(元)</th>\n",
       "      <th>加权平均净资产收益率</th>\n",
       "      <th>每股净资产(元)</th>\n",
       "      <th>经营杠杆</th>\n",
       "      <th>应收账款周转率TTM</th>\n",
       "      <th>营业周期TTM(元)</th>\n",
       "      <th>ST</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-2.138547e+08</td>\n",
       "      <td>4.159967e+07</td>\n",
       "      <td>-0.4215</td>\n",
       "      <td>-15.0900</td>\n",
       "      <td>2.0795</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.200908</td>\n",
       "      <td>1832.909028</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-1.038961e+08</td>\n",
       "      <td>-8.219335e+06</td>\n",
       "      <td>-0.1568</td>\n",
       "      <td>-5.8800</td>\n",
       "      <td>2.7251</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>16.762892</td>\n",
       "      <td>99.430209</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-5.058028e+07</td>\n",
       "      <td>-4.108386e+07</td>\n",
       "      <td>-0.0993</td>\n",
       "      <td>-186.2648</td>\n",
       "      <td>0.0066</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.596854</td>\n",
       "      <td>344.227855</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-1.579260e+09</td>\n",
       "      <td>3.265408e+09</td>\n",
       "      <td>-0.4900</td>\n",
       "      <td>992.0700</td>\n",
       "      <td>1.6489</td>\n",
       "      <td>1.303976</td>\n",
       "      <td>19.819974</td>\n",
       "      <td>136.890679</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-4.298727e+09</td>\n",
       "      <td>2.363631e+09</td>\n",
       "      <td>-7.3723</td>\n",
       "      <td>34.6100</td>\n",
       "      <td>-11.2819</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.373839</td>\n",
       "      <td>1323.923541</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         净利润(元)     非经常性损益(元)  基本每股收益(元)  加权平均净资产收益率  每股净资产(元)      经营杠杆  \\\n",
       "0 -2.138547e+08  4.159967e+07    -0.4215    -15.0900    2.0795  1.000000   \n",
       "1 -1.038961e+08 -8.219335e+06    -0.1568     -5.8800    2.7251  1.000000   \n",
       "2 -5.058028e+07 -4.108386e+07    -0.0993   -186.2648    0.0066  1.000000   \n",
       "3 -1.579260e+09  3.265408e+09    -0.4900    992.0700    1.6489  1.303976   \n",
       "4 -4.298727e+09  2.363631e+09    -7.3723     34.6100  -11.2819  1.000000   \n",
       "\n",
       "   应收账款周转率TTM   营业周期TTM(元)  ST  \n",
       "0    0.200908  1832.909028   1  \n",
       "1   16.762892    99.430209   1  \n",
       "2    1.596854   344.227855   1  \n",
       "3   19.819974   136.890679   1  \n",
       "4    0.373839  1323.923541   1  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#读入数据\n",
    "data = pd.read_excel('ST.xlsx')\n",
    "data.head()#数据预览"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "744a72cb-597c-491c-957a-9a2d12f26329",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(400, 9)\n",
      "净利润(元)        0\n",
      "非经常性损益(元)     0\n",
      "基本每股收益(元)     0\n",
      "加权平均净资产收益率    0\n",
      "每股净资产(元)      0\n",
      "经营杠杆          0\n",
      "应收账款周转率TTM    0\n",
      "营业周期TTM(元)    0\n",
      "ST            0\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "print(data.shape)#查看数据结构\n",
    "# 查看各列缺失值情况\n",
    "missing_values = data.isnull().sum()\n",
    "print(missing_values)\n",
    "# 将数据分为特征和标签\n",
    "X = data.drop(columns = ['ST'])\n",
    "y = data['ST']\n",
    "#数据标准化\n",
    "scaler = StandardScaler()\n",
    "X_scaled = scaler.fit_transform(X)\n",
    "#数据集划分\n",
    "X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=1234)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "59a967dd-ed97-49a4-bd50-55cd88a8a038",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "标准化回归系数：\n",
      "净利润(元): 0.053\n",
      "非经常性损益(元): -0.853\n",
      "基本每股收益(元): -2.220\n",
      "加权平均净资产收益率: -0.024\n",
      "每股净资产(元): -1.796\n",
      "经营杠杆: -0.249\n",
      "应收账款周转率TTM: -0.644\n",
      "营业周期TTM(元): -0.112\n"
     ]
    }
   ],
   "source": [
    "# 创建并训练逻辑回归模型\n",
    "LR = LogisticRegression()\n",
    "LR.fit(X_train, y_train)\n",
    "#输出标准化回归系数\n",
    "print('标准化回归系数：')\n",
    "for i, coef in enumerate(LR.coef_[0]):\n",
    "    print(f\"{X.columns[i]}: {coef:.3f}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "35cd1c06-f388-4549-b6e1-200d631f0ab9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "预测效果报告：\n",
      "               precision    recall  f1-score   support\n",
      "\n",
      "           0      0.823     0.879     0.850        58\n",
      "           1      0.611     0.500     0.550        22\n",
      "\n",
      "    accuracy                          0.775        80\n",
      "   macro avg      0.717     0.690     0.700        80\n",
      "weighted avg      0.764     0.775     0.767        80\n",
      "\n",
      "混淆矩阵：\n",
      " [[51  7]\n",
      " [11 11]]\n"
     ]
    }
   ],
   "source": [
    "#模型性能度量\n",
    "LR_pred = LR.predict(X_test)#对测试集进行预测\n",
    "report_LR = classification_report(y_test, LR_pred,digits = 3)\n",
    "cfmatrix_LR = confusion_matrix(y_test, LR_pred)\n",
    "print('预测效果报告：\\n',report_LR)#输出预测效果报告\n",
    "print('混淆矩阵：\\n',cfmatrix_LR)#输出混淆矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "60081a24-b763-4f64-831e-a394834ff19f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 500x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#模型性能度量：ROC曲线与AUC值\n",
    "#得到测试集的预测概率\n",
    "LR_predp = LR.predict_proba(X_test)[:,1]\n",
    "# 计算ROC曲线的参数\n",
    "fpr, tpr, thresholds = roc_curve(y_test, LR_predp)\n",
    "roc_auc = auc(fpr, tpr)\n",
    "# 绘制ROC曲线\n",
    "plt.figure(figsize=(5, 5))\n",
    "plt.plot(fpr, tpr, color='darkorange', lw=2, label='ROC曲线 (AUC值： %0.3f)' % roc_auc)\n",
    "plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')\n",
    "plt.xlim([0.0, 1.0])\n",
    "plt.ylim([0.0, 1.05])\n",
    "plt.xlabel('FPR')\n",
    "plt.ylabel('TPR')\n",
    "plt.legend(loc='lower right')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "3f0140ca-9fc9-45d4-811d-57530d9d624e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "满足条件的阈值: 0.4768\n",
      "对应的TPR: 0.6364\n",
      "对应的FPR: 0.1207\n"
     ]
    }
   ],
   "source": [
    "# 找到使fpr<0.2的情况下tpr尽可能大的阈值\n",
    "idx = np.where(fpr < 0.2)\n",
    "if len(idx) > 0:\n",
    "    max_tpr_idx = np.argmax(tpr[idx])\n",
    "    threshold = thresholds[idx][max_tpr_idx]\n",
    "    tpr_value = tpr[idx][max_tpr_idx]\n",
    "    fpr_value = fpr[idx][max_tpr_idx]\n",
    "    print('满足条件的阈值: {:.4f}'.format(threshold))\n",
    "    print('对应的TPR: {:.4f}'.format(tpr_value))\n",
    "    print('对应的FPR: {:.4f}'.format(fpr_value))\n",
    "else:\n",
    "    print('未找到满足条件的阈值')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "ef9b0096-7be3-4489-9ce9-39502e7ac578",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "预测效果报告：\n",
      "               precision    recall  f1-score   support\n",
      "\n",
      "           0      0.850     0.879     0.864        58\n",
      "           1      0.650     0.591     0.619        22\n",
      "\n",
      "    accuracy                          0.800        80\n",
      "   macro avg      0.750     0.735     0.742        80\n",
      "weighted avg      0.795     0.800     0.797        80\n",
      "\n",
      "混淆矩阵：\n",
      " [[51  7]\n",
      " [ 9 13]]\n"
     ]
    }
   ],
   "source": [
    "#模型性能度量：以阈值0.4768进行预测\n",
    "threshold = 0.4768\n",
    "LR_pred = (LR_predp > threshold).astype(int)\n",
    "report_LR = classification_report(y_test, LR_pred,digits = 3)\n",
    "cfmatrix = confusion_matrix(y_test, LR_pred)\n",
    "# 输出模型性能报告\n",
    "print('预测效果报告：\\n',report_LR)#输出预测效果报告\n",
    "print('混淆矩阵：\\n',cfmatrix)#输出混淆矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "7ab1e580-e4a6-4cb3-a301-2693c4db43bd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA68AAAIKCAYAAADMPnkAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACMMElEQVR4nOzdd3gU1aPG8Xc3mwoEUuhCAgQQBKQXRSkCAlJEUUEEwUITKaIUASlKE0RUEAs/AUUBkSZFUZFQFBGkdwIE6ZAQkpBkk83u3j/yZC5rEppgRvl+nmee68ycM3NmMnd/vp4zZyxut9stAAAAAABMzJrbDQAAAAAA4FoIrwAAAAAA0yO8AgAAAABMj/AKAAAAADA9wisAAAAAwPQIrwAAAAAA0yO8AgAAAABMz5bbDcCdx+Vy6fTp08qXL58sFktuNwcAAABALnG73UpMTFSxYsVktV69b5Xwin/c6dOnVaJEidxuBgAAAACTOHHihO66666rliG84h+XL18+SdKxY8cUHBycy60B/p/D4dAPP/ygZs2aydvbO7ebA0jiuYQ58VzCjHgu/50SEhJUokQJIyNcDeEV/7jMocL58uVTYGBgLrcG+H8Oh0MBAQEKDAzkf/RgGjyXMCOeS5gRz+W/2/W8TsiETQAAAAAA0yO8AgAAAABMj/AKAAAAADA9wisAAAAAwPQIrwAAAAAA0yO8AgAAAABMj/AKAAAAADA9wisAAAAAwPQIrwAAAAAA0yO8AgAAAABMj/AKAAAAADA9wisAAAAAwPQIrwAAAAAA0yO8AgAAAABMj/AKAAAAADA9wisAAAAAwPQIrwAAAAAA0yO8AgAAAABMz5bbDcCda/qei/IJdOe4f0i10H+wNQAAAADMjJ5XAAAAAIDpEV4BAAAAAKZHeAUAAAAAmB7hFQAAAABgeoRXAAAAAIDpEV4BAAAAAKZHeAUAAAAAmB7hFQAAAABgeoRXAAAAAIDpEV4BAAAAAKZHeAUAAAAAmB7hFQAAAABgeoRXAAAAAIDpEV4BAAAAAKZHeAUAAAAAmJ6pw2t6errS0tKuWSY1NfW6jnf+/PkbOv/vv/+uo0eP3lCdTLGxsTdcZ+fOnXr55Zdv6nxOp1MXL168ZrnExEQtW7bMY9uZM2e0dOlSORyO6zrXpUuXlJ6eflPtBAAAAICbcdPh9d1339XChQuvu/zq1atVoUKFGzrH8uXLVbBgQYWGhhqLzWZTYGCgsV6wYEG98sorWep26NBBY8aMMdZdLpcqVqyo7777LttzJSYmKiUlxVi32+3q0KGDpk+fftU2JiUlqUePHoqKijK27dmzR2FhYdq/f/9V67pcLo91X19fTZs2TcePH/fYnl1QPHXqlAIDA431jRs36q677tLp06eves7Y2Fg9/fTT+u2334xtM2fO1Lhx42S1XvtxcLlcuvvuu7Vy5cprlgUAAACAW8V2sxU3btyoOnXqXHd5b29v5c2bV5IUFRWl//3vf/L29s4SmF5++WWFhIRIktq1a6cWLVrIz8/P2F+1alWNGjVKjz76qHGsiIiILOfz8/OTv7+/sb5582YFBwerefPm2bZv8ODB2rdvn1asWKG8efNq4MCBio2N1bJly7Rs2TKdPXtWVatW1dq1a+Xt7W3U8/f3V40aNdSgQQONHz9eTz75pF544QUVKFBALVq0MMqdP39erVu31oIFC4xtb731lt5++22P68ufP79q1KhhrKelpals2bL6448/JEmff/65WrRooYCAAI/r++qrr/Tyyy+rWLFixrbMcGy1WuV0OuXl5aXw8HC98sorOnTokOrWrSu3261Zs2ZpxowZ8vLykiSjrCQ99dRT2rZtm/Llyyer1Sq32y23261+/frpzTffNNp4+fJljRw5Us8++2y29xcAAAAA/o4b7nmNj4+X0+lUWlqaETIzde7cWc8884yxrF27Vi6XyxjW6+XlpfT0dNlsNh04cECbN29WRESEIiIiFBwcrNGjR3sEOUnq2LGjZs6cmW1bLl26pOrVq2vVqlXGtit7My0Wi7H+5ZdfKiEhQWXLljXOmS9fPo0dO1aSNGXKFPn7+6t37976+OOPtWTJEm3dulVRUVFavXq1AgMDNXfuXI/gKmUEw+7du+uPP/5Q48aNNWLECFWrVk0nT55UrVq1NGLECB06dEiFChXS0KFDPeq+8cYbunz5shYvXqz+/fsrJiZGly5dUkxMjObPn6+nn35a58+fN4KrJA0cOFAXLlyQxWKRxWKRJF28eFHz5s3TzJkzFRoaqsDAQPn7+ysgIEAzZsyQJFWoUEEBAQEKCgrSjBkz9Morrxg91+fPn1enTp0UFBSkvHnzqmnTpsb5Zs6cqd9++03btm3T1q1b1bZtW7Vr107R0dHasmWLtm7dql27dumbb75Rhw4dcnpsAAAAAOBvueGe1xYtWujgwYNKSEjQ+vXrNXjwYF26dEk//fSTFixYoDlz5sjb21vTp09XdHS00dtpt9uVnJyssLAwvfzyy2rTpo1WrlypZ555RpK0YcMGlSxZUnny5PE4X5s2bdS/f389/PDDKlGihMe+Dz74QIULF/YIW2+//bZef/11SRnh9bXXXtPvv/+ur776Srt27dJdd91llO3QoYMRlv38/LR48WL9+eefatKkicLDw1W/fn35+Pjo0qVL8vb2VsOGDWW32zVu3Dg999xzHm3Zu3evIiMj9fbbb8tisejo0aNav369zp07pyeeeELR0dE5/xFsNo0cOVItW7ZU9erVJUlff/21Tp48mSXM+/r6ysfHx2PbhAkT1LVrV73//vuSpIkTJ+rs2bN69913jTKHDh0y/vn06dOyWq0qUqSIJOnIkSMqU6ZMtm1bsGCBJk2apNWrV8tisWjmzJlatWqVvvjiCy1ZskTffPONxo4dqxkzZmj//v3y9fXN8ToBAAAA4GbdcM/rr7/+qtjYWN1zzz1atmyZYmJiVK5cOQUFBcnHx0ft2rVT+/btFRYWJm9vb9177706c+aMmjdvrmrVqunUqVMaMmSIypQpo8OHD3sc98EHH8xyvm7duqlKlSpZ3ms9ceKEJk6cqHfeecejN/TVV1+Vw+FQly5dNHHiRKWmpurLL79UmzZt9NFHH+nbb781yqalpXkMvfX391f58uUVFRWlX3/9VefOndOSJUsUEhKiixcvKjo6WjVr1pTb7fZoy+LFi9W1a1e1a9dOTqdTq1atUuvWrTVlyhQ988wzqlmzpqZOnaotW7YoMTExyzXed9996t69uzHJ0+XLl7VgwQKjVzhzqG52Dh8+rFmzZmndunVavHixcW9KliyZbfljx46pQYMGeuqpp+R2u5WcnKy6deuqevXqWrhwYZb3cF944QU999xz+uWXX/Tggw/qnnvuMQLr0KFDtXPnTi1dulRbtmxR/vz5sz1namqqEhISPBYAAAAAuBE3PWFTbGysMWw4Li5OQUFBVy27ZMkSXbx4UQMGDJDD4VDlypV16NAhY0jxggUL1LZt22zrjxw5UomJiR7Bas6cOXrwwQfVpk0bj7I2m814X1OSfHx8VKVKFY0ZM0atWrXSc889Z0yulJaWlqVnU8p45/NaM+8mJydLktasWaOePXtq+fLlKlq0qKpWraq5c+fq448/VqdOndS9e3ctWrRI+/btU7t27TR//nzjGL169ZLNZpPNZtOnn36qFi1ayGazqUCBAkpISFCtWrVks9lktVp15MiRbNuxd+9ejRgxQo8++qgiIyMlSbt371blypWzlF2xYoVq1aql+vXra9myZbJYLAoICND+/fv18MMP69lnn1WFChWyzEY8YMAA1axZUxMnTlTz5s21cOFCzZ07V1FRUapSpYr69Omj0NDQHO/V+PHjlT9/fmP5aw86AAAAAFzLTU3YlJqaqjNnzig8PFxSxrunwcHBOZZ///33VblyZaWlpemXX37RyJEjNW7cOFWqVEmrV6+Wn5+fLl68qHbt2hl1HA6HXC6XfH191aRJEzVo0MBjcqfXX39dly5dMso6HA4FBARke/7MIb4lS5bU119/rcOHD8vb2ztLeD19+rSWLl2qefPm6eTJk/Ly8lJqaqrOnj1rTAp15swZbd68WcuWLdO3336rhx56SLt379a9995rzAp89uxZ/fDDDx5tCA0N1cmTJz22ud1ujRgxQiNHjrza7ZbT6cxxJuDMiau2bdumxx57TGPHjtWOHTtUt25do4zL5dLTTz+t7777Th9//HGWd1NDQ0M1fvx49erVS4MGDTIm1nK73frmm280atQoderUSenp6Zo5c6YGDRqktWvXatiwYYqNjdW+ffs0YcIEffXVVx6TTWUaOnSoR895QkICARYAAADADbmp8Lpjxw6VLFlS+fLlk91ul8vlMgLPX/3++++aNm2apk6dqunTp2vWrFmKiYmRJHXv3l0TJ07UpUuX9M4773j0mM6ZM0evvPJKlvc7L126pC5dunhsdzgcKlmypHbv3p3l/Ha73ejddDgc+vnnnzV//nwtXbo0y7Dh9957T4cPH9bPP/9sBOetW7eqffv2Rm9tq1at1L59e3Xt2tWoV7hwYSUlJenw4cMqUqSITp48qW3btql169ayWCw6cOCAmjVrlqVtcXFx1/X5oMz78ueff+rcuXPq1atXlk/iVK9eXXnz5lXnzp3VpEkTj7+H1WpVp06dZLVa1adPHw0fPlzR0dEKCwtTamqqLl26pCJFiujcuXOaPn26HnroIUkyZiKeMmWKHn74YXXp0kUvvfSSJk2apMGDB+vzzz/XDz/8oM8+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jXdeY2NjlZKSojx58kiS6tWrlyUgZvZs7tixQxEREQoMDJQklS9f3hj+W6JECT3xxBMqXbq0oqKi1Lt3b40ZM0ZRUVEqWbKktm3bpjlz5mT7eR5Jat68ub799tsc275o0SI1bdr0qtd3peXLl6tly5bXXR4AAAAAbpZpe15r1Kih48ePq0CBApKuPdtwYmKirFar1q5dKymjJ/PIkSOKjY1V8eLFr3k+X19fVahQQTt27DC2/bXn9fvvv9eECRNuzQX+xezZs2W329W0aVM988wzGjBggCIiIrRnzx6P4b9XmxH4WsqVKycfHx+tW7dODRo08Ni3c+dOzZ07V7/++muO9RcvXqzGjRurQIECunjxohYuXKjNmzffdHsAAAAA4HqZtufVx8fHCK5SRkD96zunmSwWiwIDA3X48GE9/vjjqlatmoKCgvTUU08ZYfZaMofmZicxMVFr1qzR999/b/SIXinzczMul0spKSnZtjM9PV12u11SxizFX375pS5evCh/f3/Z7XYtX75c9erVU758+TRkyBA9+eSTmj9/vu69916tXbvWCOipqalyu92y2+1yOp3GcTPfq3U4HHK5XEpOTs52Vt+pU6eqT58+iouLM7Zt2bJFLVq0UP/+/VWtWjVju5eXlzGbcUxMjDp37qz169fL7XarZ8+eGjhwoPEeMQAAAADcTqbtef0ru91uhD+Hw2H885VKlSqlunXrqm/fvqpdu7b8/f31yCOPaNKkSbLZbHI4HEpOTlZ4eLicTqdcLpdOnTolKeObqx06dPA4XkpKilJSUuTj46Phw4crLCxMY8eOzXLezPYcOnRIjRo1Mj49k2nmzJlyOBy67777NG/ePKWlpWn27NmaMGGCChcurM6dO2vDhg169dVX1atXL3l5ealevXpav369PvjgA61atUqVK1dW8eLF5evrK6vVanyuR5KGDx8uKWOIcabQ0FBVq1ZNv/zyi0dbK1eurFdffVWTJk3SuHHjjAmj+vTpo3HjxnmUbdeundq2bSuXyyWr1aoWLVrokUce0Y8//qiAgAC9+OKL1/W3AwAAAIC/y+LOqTsT/5jU1FR5e3t7BN7bzel0ysvLS6mpqdqyZYvq169/U/VvRkJCgvLnz6/RkYfkExh0U8cAbgerK13lT27WwbvqyGX91/y3PVzDkGqhud2Ev8XhcGjVqlVq2bLldU9kCNxuPJcwI57Lf6fMbBAfH5/tKNcr8W9nJpAbM/FmBk9fX98bDq5X1gcAAACAf4Jp33kFAAAAACAT4RUAAAAAYHqEVwAAAACA6RFeAQAAAACmR3gFAAAAAJge4RUAAAAAYHqEVwAAAACA6RFeAQAAAACmR3gFAAAAAJge4RUAAAAAYHqEVwAAAACA6RFeAQAAAACmR3gFAAAAAJieLbcbgDvXS5WCFRISktvNAAwOh0OrTkoDqoTI29s7t5sDAACAK9DzCgAAAAAwPcIrAAAAAMD0CK8AAAAAANMjvAIAAAAATI/wCgAAAAAwPcIrAAAAAMD0CK8AAAAAANMjvAIAAAAATI/wCgAAAAAwPVtuNwB3rul7Lson0J3bzQAMVle6ykt6d1esXFZ+HmEOPJcwI55LcxlSLTS3mwD8I+h5BQAAAACYHuEVAAAAAGB6hFcAAAAAgOkRXgEAAAAApkd4BQAAAACYHuEVAAAAAGB6hFcAAAAAgOkRXgEAAAAApkd4BQAAAACYHuEVAAAAAGB6hFcAAAAAgOkRXgEAAAAApkd4BQAAAACYHuEVAAAAAGB6hFcAAAAAgOn9p8NrUlKSDhw48I+e8/jx49q0adNN1Y2Li5Pb7b6hOgkJCerVq5dOnjx53XUuXryoadOm3WjzDCdOnNBnn3120/UBAAAA4Eb9p8PrBx98oI4dO8rpdGa73+12G/u++OIL+fn5KTw8XEWLFlXNmjUlST179lRQUJDCw8MVEBCgjz/+2KP+hQsXPI45ZMgQDRgwQOnp6Vdt27Bhw/Tjjz8a63a7XdWrV9esWbOuWs/tdnsE3Hz58mnZsmVas2aNR7mczu9yufTkk08qKCjIY3tycnKO53Q6nUpLSzPWg4OD9eGHH2Y5JwAAAADcLv/Z8Hr06FGNGzdOFy9eVJkyZRQeHu6xhIWFqUiRIho9erQkydfXVzVr1lR0dLSWLFkiX19fSVJaWpqGDBmi6OhoNW7c2NguSQsXLlS1atWM3t2FCxdq0aJFiomJ0d13362CBQsqNDRUJ06cyNK+pk2basCAAerdu7ckafDgwUpMTNSYMWOMNgYHB6tEiRIewXH9+vXy9/dXcHCwQkNDVbBgQaWkpOiVV15RaGioQkNDFRQUJH9/f126dCnLeT/77DOFh4erU6dOHtsLFSpk1P/rUrBgQQ0dOtQomydPHs2fP1/9+vWTw+G4yb8QAAAAAFw/W2434Ha4fPmy2rdvr4EDB2rkyJHXVcdq9czx3t7ekjKGHhcqVCjbOk8++aT279+vNm3aaPbs2erevbsWLFigdu3aKS0tTbVr19aIESNUokSJLHUbNmyobdu26eDBg1q5cqU2b96so0eP6pNPPtGhQ4f0ySefqGPHjqpbt658fHyMeg0aNJDdbteJEyc0duxYTZs2TTZbxp8xPj5ezz33nCZPnqxSpUplOafb7dbbb7+tDRs2ZHvPbkRERISaNm2qL7/8Ul27dr2hugAAAABwo/5zPa8pKSlq0aKFKlasqHLlyqlYsWJGT+uVPa9FihTRihUrjHoul0t2u11RUVHG+6MpKSnasGGD6tatKykj4EZHR8vhcBhDd0eOHKnIyEi9+uqrql69ul544QWVLFlShQsXVlRUlAYOHKjixYvr+eefz9LWc+fOaeLEiWrWrJl+/fVX+fv7a/bs2Vq/fr327dunefPmqV+/ftleZ758+bR06VKPd1dXrlypX375RaGhodnW2bp1q8qXL6/ChQsb25xOp1JSUq75rq3L5VJqaqrHtk6dOmnRokVXrQcAAAAAt8J/Lrz6+/vr9ddf1+zZs3X+/Hn17t1bR44cUUhIiGbMmKHo6GhFR0erVq1aypcvn1HP5XLp8OHD6tq1q958801JGUN569WrpwoVKkiSWrdurY8//lhhYWFKSUkx6hYrVkxr167VmjVrFBsbqz///FMOh0N79uxRdHS0BgwY4DH0V5L27t2rxo0bq3HjxvL29tbOnTv16KOP6v7779fnn3+uRx55REOGDNG6det0/vz5LNdZoEABvfHGG3K5XMa2Tz/9VEOGDDGu68p9krRz507VqVPHY9uWLVsUEBAgq9Uqi8WS4+Ll5aVnn33Wo26NGjW0b9++a/5NUlNTlZCQ4LEAAAAAwI34z4VXSWrRooVsNpsuXLigggULysvLSx9++KF69eqlixcvSpISExMVHBxs1HG5XKpcubI2btxoTMrUrVs39e/fXwcOHNCBAwf0wAMPaO3atTpy5IgCAgI8zul2u7P0TF7JarUaQ3MvXLigRo0aacSIEerSpYvatGmjgQMHqmPHjvroo49Uu3Ztbd68Wd7e3urdu7cGDhxoHGf+/Pmy2Wyy2Wzq27evBg0aZKxn9gDbbDZZrdYsMwJfuHAhyxDomjVrKi4uTsnJyUpJSVFgYKA2bdqklJQUlStXTmvWrFFKSoqSkpL0v//9z6OuxWLJEpCzM378eOXPn99YshtGDQAAAABX859857VZs2Y6cOCALl26JD8/P40fP14ul0tOp1PVq1eXJJ05c0bNmjVTamqqLly4kO3svCdOnNDjjz+uevXqycfHRxcvXtTu3bt1/vx5+fv7G+XGjx+vU6dOacWKFcb7p8nJyWrYsKFsNpsuXbqk1NRUrVmzRkeOHFHBggW1e/du9e7dW6+88opxnP79+6t///4ebfjll19Uvnx5j22ZIfpqXC5XlqHAefPmVWJiosc2m82mAgUKGHVSUlIUFBQkPz8/WSwW+fj4yM/PL8fzXM+nfYYOHepxnQkJCQRYAAAAADfkPxlef/jhB0kZ72R27dpVNWvWVOPGjfXtt98aoal8+fLatGmT0ft6+fJlbdmyRaGhoUpPT1fVqlXVpk0btW7dWs8995xatWqlsWPHqnTp0h6fmfnuu+80ffp0HTx4UJMmTTJCX968eRUZGanw8HBNnjxZe/bs0ezZs416hQsXVlpamqZNm6YOHTooPT1dixYtUrNmzYzjFylSxJg4KlNcXJwRNq/mrxNQSVJYWJhWr16dY51Dhw4Z5a7H+fPnFRIScs1yvr6+HrM0AwAAAMCN+k8OG8506dIlBQcHKygoSHXr1lX9+vV16tQpSRmTMV3Ze3r+/Hl17NhRMTEx+v77743tvXv31ltvvaVLly7p448/1qBBg4x9brdbw4cP18iRI3XmzBmVKVNGERERioiIMHpeIyIi9NFHH2X5rupfHTx4UM8880yWb9L+dVhudHS0ypUrd1P3o1GjRvrxxx9z7C1dtGiRHnjggav2tF5p+fLlatmy5U21BQAAAABuxH86vJ49e9boWZ02bZpefPFFFSlSRJJkt9vl5eVlfKd0//792YbCJk2aqGjRoqpZs6YaNmyo2rVrG/umT5+uxMREdevWTRERETp9+rSOHDmiqKgoBQQEKDIyUlFRUYqKitK7776b5dhFihQxelHfe+89tW/fXjExMRowYIB2796tV199VYGBgR51VqxYofr169/U/ciXL5/q16+vzz//PMu+U6dOacqUKTnObixJq1at0tmzZyVlfP/2vffeU7du3W6qLQAAAABwI/7T4dXf319NmzZVRESE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",
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 根据标准化回归系数的绝对值对变量进行排序\n",
    "abs_coef = np.abs(LR.coef_[0])\n",
    "sorted_indices = abs_coef.argsort()[::-1]\n",
    "sorted_columns = X.columns[sorted_indices]\n",
    "sorted_coef = abs_coef[sorted_indices]\n",
    "# 绘制条形图\n",
    "plt.figure(figsize=(10, 6))\n",
    "plt.barh(sorted_columns, sorted_coef, color='skyblue')\n",
    "plt.xlabel('变量重要性度量(基于标准化回归系数绝对值)')\n",
    "plt.grid(axis='x')\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
